function fun(n, o) {
  console.log(o);
  return {
    fun: function(m) {
      return fun(m, n);
    }
  }
}

var a = fun(0);
a.fun(1)
a.fun(2)
a.fun(3)

var b = fun(0).fun(1).fun(2).fun(3)